package ar.com.age.distribuidora.presentacion.controller;

import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;

import ar.com.age.distribuidora.dominio.Usuario;
import ar.com.age.distribuidora.presentacion.util.ValidadorTipoUsuario;

@ManagedBean
@ViewScoped

public class MenuBean {

	private Boolean visibilidadPanelAdministrador;
	
	private Boolean visibilidadPanelGerente;
	
	private Boolean visibilidadPanelEmpleadoVenta;
	
	private Boolean visibilidadPanelEmpleadoCompra;
	
	public MenuBean() {
		
		ValidadorTipoUsuario.validarSesion();

		ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
		Map<String, Object> sessionMap = externalContext.getSessionMap();
		IndexBean sesion = (IndexBean) sessionMap.get("indexBean");

		visibilidadPanelAdministrador = (sesion.getUsuario().getTipoUsuario().equals("A"));
		visibilidadPanelGerente = (sesion.getUsuario().getTipoUsuario().equals("G"));
		visibilidadPanelEmpleadoVenta = (sesion.getUsuario().getTipoUsuario().equals("EV"));
		visibilidadPanelEmpleadoCompra = (sesion.getUsuario().getTipoUsuario().equals("EC"));

	}

	public Boolean getVisibilidadPanelAdministrador() {
		return visibilidadPanelAdministrador;
	}

	public void setVisibilidadPanelAdministrador(
			Boolean visibilidadPanelAdministrador) {
		this.visibilidadPanelAdministrador = visibilidadPanelAdministrador;
	}

	public Boolean getVisibilidadPanelGerente() {
		return visibilidadPanelGerente;
	}

	public void setVisibilidadPanelGerente(Boolean visibilidadPanelGerente) {
		this.visibilidadPanelGerente = visibilidadPanelGerente;
	}

	public Boolean getVisibilidadPanelEmpleadoVenta() {
		return visibilidadPanelEmpleadoVenta;
	}

	public void setVisibilidadPanelEmpleadoVenta(
			Boolean visibilidadPanelEmpleadoVenta) {
		this.visibilidadPanelEmpleadoVenta = visibilidadPanelEmpleadoVenta;
	}

	public Boolean getVisibilidadPanelEmpleadoCompra() {
		return visibilidadPanelEmpleadoCompra;
	}

	public void setVisibilidadPanelEmpleadoCompra(
			Boolean visibilidadPanelEmpleadoCompra) {
		this.visibilidadPanelEmpleadoCompra = visibilidadPanelEmpleadoCompra;
	}
	
	public String logOut() {
		
		ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
		Map<String, Object> sessionMap = externalContext.getSessionMap();
		IndexBean sesion = (IndexBean) sessionMap.get("indexBean");

		sesion.setUsuario(new Usuario());
		
		return "index";
	}
}
